using System.Threading.Tasks;
using JNPF.Utils;
using System.Collections.Generic;
using JNPF.Basics.Models;

namespace JNPF.Basics.Logic
{
    public interface CustomerbaseIService
    {
		/// <summary>
		/// 获取信息
		/// </summary>
		/// <param name="id">主键id</param>
		/// <returns></returns>
		Task<CustomerbaseEntity> GetInfo(int id);

		Task<CustomerbaseEntity> GetInfo(string customerName);

        /// <summary>
        ///根据用户名称 获取信息
        /// </summary>
        /// <param name="socialCreditCode">统一信用代码</param>
        /// <returns></returns>
       Task<CustomerbaseEntity> GetInfoBySocialCreditCode(string socialCreditCode);

        /// <summary>
        /// 列表(分页)
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        Task<PageResult<CustomerbaseEntity>> GetPageList(CustomerbaseListQueryInput input);


        /// <summary>
        /// 列表(分页)
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        Task<PageResult<CustomerbaseListOutput>> GetPageList(CustomerbaseListQueryInput input,string userId);


        /// <summary>
        /// 企业用户  ===  手机号码对应起来的 
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PageResult<CustomerbaseListOutput>> GetBusPageList(CustomerbaseListQueryInput input);

        /// <summary>
        /// 客户经理列表（分页）
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        Task<PageResult<CustomerbaseListOutput>> GetCuseBusList(CustomerbaseListQueryInput input);



        /// <summary>
        /// 信贷管家   列表（分页）
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        Task<PageResult<CustomerbaseListOutput>> GetPagCuseList(CustomerbaseListQueryInput input);





        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Create(CustomerbaseEntity entity);


        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> NewneedsCreate(NewneedsEntity entity);


        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task Create(CustomerbaseEntity baseEntity, UserEntity entity, List<UserRelationEntity> userRelationList);

        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Update(CustomerbaseEntity entity);

        /// <summary>
        /// 录入首页推送信息
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> newneedsEntityInsert(NewneedsEntity newneedsEntity);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Delete(CustomerbaseEntity entity);

		/// <summary>
		/// 列表
		/// </summary>
		/// <returns></returns>
		Task<List<CustomerbaseEntity>> GetList(CustomerbaseListQueryInput input);


    }
}
